Ad Widget

Collapse

Oracle & Zabbix 1.8 (Îøèáêè)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dotneft
    Senior Member
    • Nov 2008
    • 699

    #16
    Ñäåëàë ïàò÷ äëÿ èñïîëüçîâàíèÿ â òðàíêå sequence:

    Ñîçäàíèå sequence â ñëó÷àå åñëè ñåðâåð íîâûé:
    Code:
    create sequence  acknowledges_acknowledgeid start with 1 cache 10;
    create sequence  actions_actionid start with 1 cache 10;
    create sequence  alerts_alertid start with 1 cache 10;
    create sequence  applications_applicationid start with 1 cache 10;
    create sequence  auditlog_auditid start with 1 cache 100;
    create sequence  conditions_conditionid start with 1 cache 10;
    create sequence  dchecks_dcheckid start with 1 cache 10;
    create sequence  dhosts_dhostid start with 1 cache 10;
    create sequence  drules_druleid start with 1 cache 10;
    create sequence  dservices_dserviceid start with 1 cache 100;
    create sequence  escalations_escalationid start with 1 cache 100;
    create sequence  events_eventid start with 1 cache 1000;
    create sequence  functions_functionid start with 1 cache 100;
    create sequence  graphs_graphid start with 1 cache 100;
    create sequence  graphs_items_gitemid start with 1 cache 100;
    create sequence  groups_groupid start with 1 cache 10;
    create sequence  history_log_id start with 1 cache 10;
    create sequence  history_text_id start with 1 cache 100;
    create sequence  hosts_hostid start with 1 cache 100;
    create sequence  hosts_groups_hostgroupid start with 1 cache 10;
    create sequence  hosts_templates_hosttemplateid start with 1 cache 10;
    create sequence  housekeeper_housekeeperid start with 1 cache 1000;
    create sequence  httpstep_httpstepid start with 1 cache 10;
    create sequence  httpstepitem_httpstepitemid start with 1 cache 10;
    create sequence  httptest_httptestid start with 1 cache 10;
    create sequence  httptestitem_httptestitemid start with 1 cache 10;
    create sequence  images_imageid start with 1 cache 10;
    create sequence  items_itemid start with 1 cache 100;
    create sequence  items_applications_itemappid start with 1 cache 100;
    create sequence  mappings_mappingid start with 1 cache 10;
    create sequence  media_mediaid start with 1 cache 10;
    create sequence  opconditions_opconditionid start with 1 cache 10;
    create sequence  operations_operationid start with 1 cache 10;
    create sequence  profiles_profileid start with 1 cache 1000;
    create sequence  rights_rightid start with 1 cache 10;
    create sequence  screens_screenid start with 1 cache 10;
    create sequence  screens_items_screenitemid start with 1 cache 10;
    create sequence  service_alarms_servicealarmid start with 1 cache 10;
    create sequence  services_serviceid start with 1 cache 10;
    create sequence  services_links_linkid start with 1 cache 10;
    create sequence  sysmaps_sysmapid start with 1 cache 10;
    create sequence  sysmaps_elements_selementid start with 1 cache 10;
    create sequence  sysmaps_links_linkid start with 1 cache 10;
    create sequence  triggers_triggerid start with 1 cache 100;
    create sequence  user_history_userhistoryid start with 1 cache 10;
    create sequence  users_userid start with 1 cache 10;
    create sequence  users_groups_id start with 1 cache 10;
    create sequence  usrgrp_usrgrpid start with 1 cache 10;
    create sequence  valuemaps_valuemapid start with 1 cache 10;
    â ñëó÷àå åñëè óæå ðàáîòàë:
    Code:
    SELECT      'create sequence '
             || i.table_name
             || '_'
             || i.field_name --|| '_0'
             || ' start with '
             || ROUND (i.nextid * 1.1)
             || ' cache '
             || CASE
                  WHEN i.nextid > 100000 THEN '1000'
                   WHEN i.nextid > 10000 THEN '100'
                   ELSE '10'
                END
             || ';'
             
        FROM ids i
    ORDER BY i.table_name ;
    ïîëó÷àåì ñïèñîê çàïðîñîâ íà ñîçäàíèå sequence è âûïîëíÿåì èõ.

    è íåïîñðåäñòâåííî ïàò÷ â àòà÷å.

    Áîëüøàÿ ïðîñüáà îáðàòèòü âíèìàíèå íà íåãî ðàçðàáîò÷èêàì. Èç-çà ñëèøêîì ÷àñòûõ UPDATE ids âîçíèêàþò concurrency èç-çà ýòîãî áûâàþò ïðîöåññû îæèäàþò.

    Äîïîëíèòåëüíî íóæíî ïðîäóìàòü ñáðîñ sequence, íî äóìàþ íàâðÿäëå ïîíàäîáèòñÿ, ò.ê. max value î÷åíü áîëüøîé)

    ÇÛ: ìèíóñ ïàò÷à, ò.ê. îæèäàíèå ïðîöåññàìè óìåíüøåíî, òî çàïðîñîâ â ñåêóíäó áîëüøå è íàãðóçêà íà ïðîöåññîð òîæå áîëüøå
    Attached Files

    Comment

    • dotneft
      Senior Member
      • Nov 2008
      • 699

      #17


      ýòà áàãà ñêîðåå âñåãî ðàçðåøèëàñü óæå, ïîñëå ïåðååçäà íà OCI Â áëèæàéøåå âðåìÿ ïðîòåñòèðóþ

      Comment

      • dotneft
        Senior Member
        • Nov 2008
        • 699

        #18
        Code:
        ociexecute() [<a href='function.ociexecute'>function.ociexecute</a>]: ORA-00918: column ambiguously defined[/var/www/zabbix/php/include/db.inc.php:500]
        SQL error [ORA-00918: column ambiguously defined] in [SELECT * FROM (SELECT u.userid,u.* FROM users u WHERE round(u.userid/100000000000000) in (0) ) WHERE rownum BETWEEN 0 AND 1001]
        ocierror() expects parameter 1 to be resource, boolean given[/var/www/zabbix/php/include/db.inc.php:419]
        SQL error [] in []
        ocifetchinto() expects parameter 1 to be resource, boolean given[/var/www/zabbix/php/include/db.inc.php:550]
        При просмотре users.php списка пользователей.
        Найте где не удалось(

        Comment

        • dotneft
          Senior Member
          • Nov 2008
          • 699

          #19
          Уважаемые, разработчики, как вы смотрите на возможность сделать в zabbix 1.8 для Oracle передачу запросов через bind'ы?

          Вот есть небольшая статейка по этому поводу:


          Все таки через bind'ы передавать аргументы для Oracle более правильно чем цельной строкой


          Наверное и сам бы сделал, да с формированием строки, например из:
          Code:
          update triggers set lastchange=%d,error='%s' where triggerid=%lu
          сделать
          Code:
          update triggers set lastchange=:1,error=:2 where triggerid=:3
          а потом еще передать правильно значения параметров:
          Code:
          OCIBindByName(p_sql, &p_bnd, p_err, (text *) ":1",
                     -1, (dvoid *) &p_bvi, sizeof(int), SQLT_INT, (dvoid *) 0,
                     (ub2 *) 0, (ub2 *) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT);
          мне достаточно сложно плохо СИ знаю(
          Last edited by dotneft; 15-10-2009, 20:46.

          Comment

          • Alexei
            Founder, CEO
            Zabbix Certified Trainer
            Zabbix Certified SpecialistZabbix Certified Professional
            • Sep 2004
            • 5654

            #20
            Originally posted by dotneft
            Уважаемые, разработчики, как вы смотрите на возможность сделать в zabbix 1.8 для oracle передачу запросов через bind'ы?
            Это будет сделано рано или поздно для всех баз данных.
            Alexei Vladishev
            Creator of Zabbix, Product manager
            New York | Tokyo | Riga
            My Twitter

            Comment

            • dotneft
              Senior Member
              • Nov 2008
              • 699

              #21
              Ýòî ðàäóåò, ñïàñèáî

              Code:
              ociexecute() [<a href='function.ociexecute'>function.ociexecute</a>]: ORA-01791: not a SELECTed expression[/var/www/zabbix/php/include/db.inc.php:500]
              SQL error [ORA-01791: not a SELECTed expression] in [SELECT DISTINCT ds.ip FROM dservices ds WHERE ds.dhostid=971 ORDER BY ds.dserviceid]
              ocierror() expects parameter 1 to be resource, boolean given[/var/www/zabbix/php/include/db.inc.php:419]
              SQL error [] in []
              DISTINCT ñ ORDER'îì

              Comment

              • dotneft
                Senior Member
                • Nov 2008
                • 699

                #22
                Хочу сказать спасибо разработчикам, производительность транковой версии намного выше чем 1.6

                Ниже графики загрузки сервера и Oracle. Итемов 20081, новых значений в секунду 214.731549272.

                Столкнулся с непонятной проблемой. Есть железка Blade San Switch. С неё снимаются по SNMP v2c данные. Данные достаточно долго снимаются (железяка такая) и после добавления железки в мониторинг, данные снимаются только 1 раз потом сервер отключает железяку, выставив snmp_disable_until и snmp_errors_from. Более даже нет попыток ничего снять Если вручную обнулить оба поля, то опять начинают данные сниматься. Поигравшись с таймаутами, так и не удалось решить проблему, хотя 1.6.7 хоть и ругался в логи, что не удалось снять, то этот итем, то тот, но все равно снимал в конечном счете

                Добавлено:
                похоже нашел проблему с снмп:
                Code:
                Index: src/libs/zbxdbcache/dbconfig.c
                ===================================================================
                --- src/libs/zbxdbcache/dbconfig.c      (revision 8119)
                +++ src/libs/zbxdbcache/dbconfig.c      (working copy)
                @@ -2383,7 +2383,7 @@
                                                if (0 == item[1])
                                                        break;
                                                item[1] = 0;
                -                               break;
                +//                             break;
                                                goto copy_item;
                                        case ITEM_TYPE_IPMI:
                                                if (0 == item[2])
                Attached Files
                Last edited by dotneft; 25-10-2009, 07:49.

                Comment

                • dotneft
                  Senior Member
                  • Nov 2008
                  • 699

                  #23
                  имеется общая проблема с созданием таблиц для Oracle.
                  В некоторых таблицах вместо varchar2 используется nvarchar2 размером 2048 символов,
                  хотя максимальная длина nvarchar2 4KB и 1 символ записывается двумя байтами,
                  т.е. длина поля может быть максимально 2000 символов.

                  Вообще может пользователю предоставить возможность выбора использовать nvarchar2 или varchar2?
                  У меня максимум 2 языка (eng, ru) и мне такое поле ни к чему Думаю у большинства все таки именно так.

                  Comment

                  • dotneft
                    Senior Member
                    • Nov 2008
                    • 699

                    #24
                    Ïàò÷è äëÿ Oracle íà 1.7 âåðñèþ. Ìîæåò êîìó ïîíàäîáÿòñÿ èëè ðàçðàáîò÷èêè âêëþ÷àò â 1.7 Zabbix.

                    ÇÛ: Çàìåíèë â ïàò÷å nvarchar2 íà varchar2. Åñëè íóæåí èìåííî nvarchar2 ïðèéäåòñÿ ïîïðàâèòü
                    Attached Files

                    Comment

                    • sersad
                      Senior Member
                      • May 2009
                      • 518

                      #25
                      Добавлено:
                      похоже нашел проблему с снмп:
                      А как использовать данный патч? У меня вроде бы похожая проблема в транковой версии.

                      Comment

                      • dotneft
                        Senior Member
                        • Nov 2008
                        • 699

                        #26
                        Originally posted by sersad
                        à êàê èñïîëüçîâàòü äàííûé ïàò÷? ó ìåíÿ âðîäå áû ïîõîæàÿ ïðîáëåìà â òðàíêîâîé âåðñèè.
                        èñõîäíèêè îòêðûâàåòå è ïðàâèòå òàì 1 ñòðî÷êó çàêîììåíòèðîâàòü íóæíî

                        Comment

                        • sersad
                          Senior Member
                          • May 2009
                          • 518

                          #27
                          Originally posted by dotneft
                          Данные достаточно долго снимаются (железяка такая) и после добавления железки в мониторинг, данные снимаются только 1 раз потом сервер отключает железяку, выставив snmp_disable_until и snmp_errors_from. Более даже нет попыток ничего снять Если вручную обнулить оба поля, то опять начинают данные сниматься.
                          Сделал как вы рекомендовали. Закоментил break, и поля snmp_disable_until и snmp_errors_from обнулились сами. До этого долго не мог понять почему в очереди по 100 000 элементов и почему опрос многих узлов отложен на 39 лет)))
                          Спасибо проблема решилась!!!

                          К разработчикам: неплохо бы добавить новый флаг для таких "тормозных" устройств, который бы не позволял в случае каких либо ошибок опроса исключать эту железку из опроса автоматически.

                          Comment

                          • dotneft
                            Senior Member
                            • Nov 2008
                            • 699

                            #28
                             ïàò÷å ê events.sql îøèáêà:

                            Code:
                            DROP INDEX events_2;/
                            This Oracle tutorial explains how to create, rename and drop indexes in Oracle with syntax and examples. An index is a performance-tuning method of allowing faster retrieval of records.

                            Comment

                            • Alexei
                              Founder, CEO
                              Zabbix Certified Trainer
                              Zabbix Certified SpecialistZabbix Certified Professional
                              • Sep 2004
                              • 5654

                              #29
                              Originally posted by dotneft
                              â ïàò÷å ê events.sql îøèáêà:

                              Code:
                              drop index events_2;/
                              http://www.techonthenet.com/oracle/indexes.php
                              Спасибо, исправили!
                              Alexei Vladishev
                              Creator of Zabbix, Product manager
                              New York | Tokyo | Riga
                              My Twitter

                              Comment

                              Working...